from llama_index.core import SimpleDirectoryReader
import os

# 加载文档
documents = SimpleDirectoryReader("/Users/yishanli/python/stock-agent/File/Unstructured/股票").load_data()

print("=" * 50)
print("原始documents对象信息：")
print("=" * 50)
print(f"documents类型: {type(documents)}")
print(f"documents长度: {len(documents)}")
print(f"documents内容: {documents}")

print("\n" + "=" * 50)
print("详细解析每个Document对象：")
print("=" * 50)

for i, doc in enumerate(documents):
    print(f"\n--- Document {i+1} ---")
    print(f"文档ID: {doc.get_doc_id()}")
    print(f"文档类型: {type(doc)}")
    print(f"元数据: {doc.metadata}")
    
    # 获取文档内容
    content = doc.get_content()
    print(f"内容长度: {len(content)} 字符")
    print(f"内容预览 (前200字符): {content[:200]}...")
    
    # 检查内容是否为空或只包含空白字符
    if content.strip():
        print("✅ 内容有效 - 可以被向量化")
    else:
        print("❌ 内容无效 - 无法被向量化")

print("\n" + "=" * 50)
print("可读格式的内容展示：")
print("=" * 50)

for i, doc in enumerate(documents):
    print(f"\n📄 文档 {i+1}: {doc.metadata.get('file_name', '未知文件名')}")
    print(f"📁 文件路径: {doc.metadata.get('file_path', '未知路径')}")
    print(f"📊 文件大小: {doc.metadata.get('file_size', '未知')} 字节")
    print(f"📅 创建时间: {doc.metadata.get('creation_date', '未知')}")
    print(f"📝 修改时间: {doc.metadata.get('last_modified_date', '未知')}")
    
    content = doc.get_content()
    if content.strip():
        # 显示内容的前300个字符
        preview = content[:300].replace('\n', '\\n')
        print(f"📖 内容预览: {preview}...")
        print(f"✅ 状态: 可向量化 (内容长度: {len(content)} 字符)")
    else:
        print("❌ 状态: 无法向量化 (内容为空)")
    
    print("-" * 40)

print("\n" + "=" * 50)
print("向量化验证：")
print("=" * 50)

# 验证文档是否可以被向量化
valid_docs = []
invalid_docs = []

for doc in documents:
    content = doc.get_content()
    if content and content.strip():
        valid_docs.append(doc)
    else:
        invalid_docs.append(doc)

print(f"✅ 可向量化的文档数量: {len(valid_docs)}")
print(f"❌ 不可向量化的文档数量: {len(invalid_docs)}")

if valid_docs:
    print("\n可向量化的文档列表:")
    for i, doc in enumerate(valid_docs):
        print(f"  {i+1}. {doc.metadata.get('file_name', '未知文件名')}")
        print(f"     内容长度: {len(doc.get_content())} 字符")

if invalid_docs:
    print("\n不可向量化的文档列表:")
    for i, doc in enumerate(invalid_docs):
        print(f"  {i+1}. {doc.metadata.get('file_name', '未知文件名')}")
        print(f"     原因: 内容为空或只包含空白字符") 